Media channels, such as audio and video channels, have long been transmitted using application specific cables. More recently, media signals have been transmitted on computer based networks using protocols such as unicast or multicast. Unicast is a method of sending packets on a computer network to a single destination. Multicast is a protocol for efficiently sending data streams to multiple receivers at the same time on TCP/IP networks by use of a multicast address. The computer network then operates to route the packets to each of the devices on the network that wish to receive the multicast packets.
However, one technical issue is that when media signals are transmitted to a receiver, IP packets in the signal can often be lost due to various connection issues. In order to recover lost IP packets and reconstruct original streams, media networks can allow for redundant media packet streams to be transmitted and received. For example, a transmitter using the SMPTE 2022-7 communication standard duplicates the input stream and sends it via two different paths to the destination receiver. FIG. 1 illustrates a block diagram of a conventional system using redundancy (i.e., “seamless protection switching”) to reconstruct a data stream with lost IP packets.
As shown, the system includes a transmitting device 10 and a receiving device 20 (both referred to as “edge” devices) that communicate by one or many IP data communication networks 30. Using the SMPTE 2022-7 standard, for example, the transmitter 10 continually processes the primary media packet input stream, duplicates the stream, and transmits it via the network 30 over two separate paths in the network (or two or more separate networks, for example). The receiver 20 combines the streams from both paths and reconstructs the original stream. Thus, path 1 can provide a primary data flow and path 2 can provide a redundant data flow. If a packet is lost in path 1, the receiver 20 is configured to take the pack from path 2. If path 1 is completely gone (i.e. a broken transmission path in the network), the receiver switches to path 2. Once the switch occurs, the receiver 20 ignores the primary media packet stream and processes the redundant copy from path 2.
As such technologies continue to develop, receiving devices (e.g., receiving device 20) that receive IP based media signals according to the SMPTE 2022-7 standard, as well as other suites of standards including SMPTE 2022-6, AES-67 and the upcoming SMPTE 2110 standard, must be more flexible than their serial digital interface (“SDI”) predecessors. The requirements for these network ports include redundancy, different media types, each with a different bandwidth, different counts of each signal type, etc.
These signal types, now generally referred to as “flows”, may each need some processing specific to their type, audio or video, or workflow application, redundant, precision timing, and the like. Currently, before these steps can be taken, every flow is processed identically. That is, the MAC addresses, IP addresses and as needed, the UDP port addresses, are parsed prior to the real-time transport protocol (“RTP”) header being examined.
In the conventional approach, once the Ethernet payload is extracted, a dedicated processing block, hardware or software, can act upon the IP datagram. Moreover, each unique data flow, requires its own parser and processor. For example, to support SMPTE 2022-7 network redundancy, a second port's Ethernet payload is extracted and fed to dedicated processing blocks for IP datagram processing. SMPTE 2022-7 datagram processing requires that the RTP headers of two pre-identified flows are compared and the best flow will always be used as described above. In this instance, there is a need to align matching RTP datagrams in time, based upon their header value, in order to create a perfectly clean switch.
This last requirement is met by adding memory to essentially record data of a certain duration, to ensure enough time is captured to allow for the alignment of the two flows, arriving from mirrored, but separate networks (e.g., paths 1 and 2 shown in FIG. 1).